toFixed() ?在 Day 08 中,我們成功建構了表單驗證機制,確保輸入的身高、體重與年齡皆為有效的數字。
今天 [Day 09] 的任務,就是將這些乾淨的數據帶入 BMI、BMR 與 TDEE 的數學公式 中。我們會運用 JavaScript 的算術運算子進行精準計算,並使用 toFixed() 解決浮點數小數點過長的問題,將數據整理成易於閱讀的格式!
在 JS 中進行數學運算時,我們會用到以下基礎算術運算子:
+ / - / * / /:加、減、乘、除。**(指數運算子):例如 1.65² 可以寫成 1.65 ** 2(或使用 Math.pow(1.65, 2))。接續 Day 08 通過驗證後的程式碼區塊,我們將核心邏輯補全:
/tool1-calculator.js
toFixed()?在 JavaScript 中,直接進行浮點數除法常會產生極長的小數,例如 22.49134948096886。如果直接渲染到畫面上,會破壞卡片的美觀,也會讓使用者感到困惑。
toFixed(n) 的用法與陷阱number.toFixed(n) 能將數字轉為指定小數點位數的字串:
const rawBmi = 22.4913;
console.log(rawBmi.toFixed(1)); // 輸出:"22.5" ( 型態變成了 String )
提醒:
toFixed()回傳的是字串 (String) 而非數字!如果你後續還需要拿這個結果進行加減運算,記得用parseFloat(bmi.toFixed(1))將它轉回數字,否則會發生"22.5" + 5 = "22.55"的字串串接。
Math.round()對於 BMR 與 TDEE 這類卡路里數值,一般日常評估不需要小數點。使用 Math.round() 進行四捨五入取整數,可以讓數據在視覺上看起來更直覺、更乾淨。
今天我們成功完成 [Tool 1] 最核心的數學計算與數值格式化!我們學會了如何正確換算單位、運用條件判斷區分男女 BMR 公式,並使用 toFixed() 與 Math.round() 整理出漂亮的數據輸出。